The present invention relates to rate control during transcoding and encoding of digital video programs in a multi-program transmission environment, where several programs are multiplexed and transmitted over a single communication channel.
Commonly, it is necessary to adjust a bit rate of digital video programs that are provided, e.g., to subscriber terminals in a cable television network or the like. For example, a first group of signals may be received at a headend via a satellite transmission. The headend operator may desire to forward selected programs to the subscribers while adding programs (e.g., commercials or other content) from a local source, such as storage media or a local live feed. Additionally, it is often necessary to provide the programs within an overall available channel bandwidth. It may also be desired to change the relative quality level of a program by allocating more or fewer bits.
Accordingly, the statistical multiplexer (stat mux), or encoder, which includes a number of encoders for encoding uncompressed digital video signals at a specified bit rate, has been developed. The statistical remultiplexer (stat remux), or transcoder, which handles pre-compressed video bit streams by re-compressing them at a specified bit rate, has also been developed. Moreover, functions of a stat mux and remux may be combined when it is desired to transcode pre-compressed data while also coding uncompressed data for transport in a common output bitstream. Uncompressed programs are coded for the first time, while compressed programs are re-encoded, typically at a different bit rate.
For MPEG applications, a stat mux/remux must accommodate three different picture types (I, P and B), which usually require quite different numbers of bits because of the different nature of their temporal processing.
Bit allocation strategies should take the picture types into consideration. For a given bit budget, this implies a requirement of a priori knowledge of the picture organizations (GOP) of the programs. The requirement is not a problem for encoders because encoders can plan ahead for types and arrangement of pictures that it will output. However, such a priori knowledge is typically not available for transcoders, which deal with pre-compressed video bit streams.
Accordingly, it would be desirable to provide a stat mux/remux system that removes the assumption that the picture organizations are available for all the programs.
The system should provide a novel adaptive bit allocation strategy for a stat mux/remux system that requires no a priori (beforehand) knowledge of program picture organization. The system should be able to address any changes in program picture organizations, including a change in the GOP length and/or the sub-GOP length (the distance between two P-pictures in either encoding or display order).
The system should include transcoders for processing pre-compressed video bit streams, or both encoders and transcoders, for additionally handling uncompressed digital video signals.
Moreover, the system should accommodate changes in the group of pictures (GOP) structure of pre-compressed bitstreams, for example, due to switching channels, commercial insertion, changes in the program content (e.g., due to a transition from a movie to a news announcement or a sports event), and the like. The system should handle structure changes that occur at a GOP boundary or within a GOP.
The system should accommodate changes in a GOP length and/or a sub_GOP length.
The system should overcome difficulties in integrating pre-compressed program bit streams (that include, e.g., video materials such as films and the like that are pre-compressed and stored for subsequent transmission) with uncompressed digital video sequences.
The system should not require a priori (beforehand) knowledge of the picture organization (GOP structure) of programs (e.g., the GOP length, and arrangement of different picture types in the GOP). The system should avoid a processing delay of about one GOP which would otherwise be incurred to extract the complete GOP structure information from a pre-compressed bit stream. The system should also avoid the need to store the data corresponding to the GOP, thereby reducing the memory size required for transcoding.
The present invention provides a system having the above and other advantages.
The present invention relates to rate control during transcoding and coding of digital video data in a multi-program transmission environment.
The invention accounts for changes in the structure of a GOP, e.g., due to a commercial insertion or the like, to adjust the bit allocation for each picture accordingly. A change in the GOP length (increase or decrease), and/or a sub_GOP length can be accommodated. For example, a change in picture sequence from IBBPBBPBB . . . to IBPBPBPB . . . results in the sub_GOP changing from three to two.
The sub_GOP length contains information about the specific picture types and their arrangement in a GOP. Hence, even when the GOP length remains the same during a change in the input video source, we may have a different arrangement of picture types if the sub_GOP changes.
Moreover, the invention operates with a hierarchical bit allocation scheme, where bits are allocated on a super GOP, super frame, and individual frame levels.
The change in the GOP structure can occur anywhere, e.g., within a GOP or super GOP, or at a boundary of a GOP or super GOP. Once the GOP of a program changes, the length of the super GOP is re-calculated, and the allocation of bits to the super GOP is adjusted accordingly.
If there is a switch during the middle of an old GOP to another program of a new GOP, this is treated as a transition from the old GOP to an old incomplete GOP, and then to the new GOP.
A particular method in accordance with the invention is provided for coding a plurality L of video programs. The method includes the step of allocating bits for coding the video programs according to a hierarchical scheme that includes at least: (a) a super group of pictures (GOP) level, wherein a super GOP comprises at least one GOP from each of the video programs, and (b) an individual frame level. The allocating step is responsive to respective GOP structures of the video programs. The respective GOP structures of the video programs are monitored to detect any changes thereof. When a change in the GOP structure of at least one of the video programs is detected, the allocation of bits for coding the video programs in the super GOP is adjusted according to the change.
Accordingly, the invention can optimize the allocation of bits since a rate control processor maintains updated knowledge of each picture type and the arrangement of pictures for the different programs to the maximum extent possible.
Corresponding apparatuses are also presented.